#ifndef CORE_INPUT_EVENTHANDLER_H
#define CORE_INPUT_EVENTHANDLER_H

#include "IInputEventHandler.h"
#include "ISystemEventInjector.h"
#include "KeyBoard.h"
#include <vector>

namespace steam
{
	namespace core
	{
		class InputEventHandler : public ISystemEventInjector, public IInputEventHandler
		{
		public:

			void addKeyListener(intake::IKeyListener* keyListener);

			void removeKeyListener(intake::IKeyListener* keyListener);

			void injectKeyDown(intake::KeyCode key);

			void injectKeyUp(intake::KeyCode key);

		private:

			std::vector<intake::IKeyListener*> m_keyListeners;

		};
	}
}

#endif